package me.zk.practice1.hw;

import java.util.Arrays;
import java.util.Scanner;

public class HWBJ22 {
    //7 5 9 4 2 6 8 3 5 4 3 9
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int[] nums = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();


       int x = Integer.MAX_VALUE;
       //第一步选择的位置
        for (int i = 1; i < nums.length/2; i++) {
            //当前的位置
            int index = i;
            //步数
            int count = 1;
            //第一步最远的位置
            int maxIndex = i+nums[index];
            //第二步根据第一步选的位置进行
            for (int j = index+1; j <=maxIndex; j++) {
                count++;
                //
                int newIndex = j+nums[j];
                //更新最大可选位置
                maxIndex = Math.max(maxIndex,newIndex);
                if (newIndex >= nums.length-1) {
                    break;
                }
            }
            //恰好走到更新
            if (maxIndex == nums.length-1) {
                x = Math.min(x,count);
            }
        }
        System.out.println(x==Integer.MAX_VALUE ? -1:x);
    }
}
